# 判断是否为此；类型 isinstance
a = 111
isinstance(a, int)
# type() 判断数据类型
print(isinstance(a, int))
# isinstance()

# abs()---返回绝对值函数
a = -123
print(abs(a))

# all()函数
# all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE，如果是返回 True，否则返回 False。
# 元素除了是 0、空、None、False 外都算 True。
print(all(['a', 'b', 'c', 'd']))  # 列表list，元素都不为空或0

# any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False，则返回 False，如果有一个为 True，则返回 True。
# 元素除了是 0、空、FALSE 外都算 TRUE。

# bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
print(bin(10))
# bool() 函数用于将给定参数转换为布尔类型，如果没有参数，返回 False。
print(bool(0))
print(bool(1))
# bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的，并且每个元素的值范围: 0 <= x < 256。

# callable() 函数用于检查一个对象是否是可调用的。如果返回 True，object 仍然可能调用失败；但如果返回 False，调用对象 object 绝对不会成功。
print(callable(0))


def add(a, b):
    return a + b


print(callable(add))

# classmethod 修饰符对应的函数不需要实例化，不需要 self 参数，但第一个参数需要是表示自身类的 cls 参数，可以来调用类的属性，类的方法，实例化对象等。

# python3中已经没有map函数了，cmp(x,y) 函数用于比较2个对象，如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
# >>> import operator   operator.eq('hello', 'name');
# print(cmp(1,1))

# compile() 函数将一个字符串编译为字节代码。

# dir()  获得当前模块的属性列表
# print(dir())

# iter() 函数用来生成迭代器。

# reduce() 函数会对参数序列中元素进行累积。

# reverse() 函数用于反向列表中元素。
ll = [1, 2, 3, 5, 8, 7, 78, 2, 1, 5, 1, 5, 4, 9, 9, 9, 9]
ll.reverse()
print(ll)

# round() 方法返回浮点数x的四舍五入值。
print(round(4.4154))

# set() 函数创建一个无序不重复元素集，可进行关系测试，删除重复数据，还可以计算交集、差集、并集等。


#sorted() 函数对所有可迭代的对象进行排序操作。

#slice() 函数实现切片对象，主要用在切片操作函数里的参数传递。
arr = range(10)
print(arr)


# sum() 求和

#super() 函数是用于调用父类(超类)的一个方法。
# class A:
#     def add(self, x):
#         y = x+1
#         print(y)
# class B:
#     def add(self,x):
#         super().add(x)
# b = B()
# b.add(2)

# 优先级顺序为 NOT、AND、OR。